`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date:    13:55:06 05/22/2020 
// Design Name: 
// Module Name:    CSA 
// Project Name: 
// Target Devices: 
// Tool versions: 
// Description: 
//
// Dependencies: 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: 14bit CSA
//
//////////////////////////////////////////////////////////////////////////////////
module CSA(
    input [11:0] CSA_a,
    input [11:0] CSA_b,
    output [11:0] CSA_cin,
    output [11:0] CSA_sum
    );
	
parameter CSA_q_inv= 12'd767;  //1_0000_0000_0000-14'd3329

assign CSA_sum= CSA_a ^ CSA_b ^ CSA_q_inv;
assign CSA_cin= (CSA_a & CSA_b) | (CSA_b & CSA_q_inv) | (CSA_q_inv & CSA_a);

endmodule
